Skip to main content

Full text of "Timex Sinclair Users Group Mile High Chapter"

See other formats


TfX£ttffittiz2Xtff£ftkfitktkikitfiXxkifzfkifikXtfrXfikkikkirxtikrfriiiffifiXxkifitkkkxi 


TIME xX SINCLAIR USERS  SROLIP 
MILE HIGH CHAPTER 


EXSSKE LATE KEEEKKET AERA SAAT SEEKS K EERE AES E EE ERLE KERR TE REE 
C/O FRANK HOLLAND, 1423 5. PEARL ST., DENVER CO 80210, 733-8103 


TSUG meetings are USUALLY on the 4th Thursday of every month. 
The DEC. MASENG is cancelled because of the holidays. 


MILE HI TSUG maintains a sub-board on THE KING'S MARKET BBS. 


1-303-555-6091, B-1-NONE. Accessible thru PC-PURSUIT. 
MENU SELECTIONS TO GET TO THE SUB-BOARD ARE: PATSA 
(1) CONTENTS .. CCAT/S 

(2) INTERESTS & USER GROUPS 655-7484 


C3) TIMEX-SINCLAIR 
General messages for ciub members are addressed to "ALL". 
ΣΣΣΣΣΦΣΣΣΣΣΣΣΣΣΣΗΣΣΣΣΣΑΣΑΣΣΣΣΣΣΣΣΣΣΧΣΑΧΣΣΣΣΣΧΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΚ 


MISC NOTES: MONITOR PROBLEMS 


For those of you who have been having problems with monitors. 
The "tearing" problem at the upper left corner of the display 
seems to be because of a peculiar mis-match that can occur 
between the computer and the monitor. 

The 75 ohm impedance matching resistor and the 100mfd DC 
isolation capacitor in the output circuit of the computer AND 
the 75 ohm impedance matching resistor in the input of the 
monitor form a "pi" network which feeds the input capacitor of 
the monitor. This input capacitor seems to vary widely from 
brand to brand and changes the balance of the "pi" network. 

My solution was to remove the 100 mfd output capacitor (C-58) 
and substitute a 470 mfd capacitor (after ë lot of 
experimentation). You may need to experiment a bit for the 
particular monitor that you have; mine is an AMDEK 300-6. 

There wasn't enough room in the video cage for the new cap so 
I replaced the capacitor with a jumper and made an add-on plug 
box with the 470 mfd cap. This goes between the  "manitor out" 
plug and the monitor. 

I have not experimented with replacing the 75 ohm resistors 
with 500 ohms for a different impedance match) because I would 
need to tear into both the computer and the monitor. 

If your monitor has a 75/300 ohm switch, then it would be a 
simple matter to remove the entire output  capacitor/resistor 
combination from the 2068, then add a switch and the two (75/300 
ohm) resistors to the capacitor in the add-on box so that you 
have an impedance selection switch for the computer. 

Just remember that the emitter resistor and blocking 
capacitor are now in the external box. If you power-up the 2068 
(or connect a monitor) without them it will damage the computer. 

And always make sure that the two switches are set the same. 


XYXffXrtXXftfiffitXktilttiEXiXtixkfiXfiXXkixXxikirxtiifixfiritrixrfikikikxkikrikxkrfr 


ΣΣ ΣΣ ΣΣ ΣΑΣ ΕΕΣ ΣΣ ΣΑΣ ΣΕ ΣΣ ERT ATRL TAT ATK EE TERETE TL TTT TES 
DS-64 BUG: From SYNCWARE NEWS, Sept-Oct 787 


05-64 cartridge version 1.72 sets RAMTOP at 65255. This is 
ABOVE the machine stack and ram-resident code. If a long 
program over-writes the machine stack, the system will crash. 

The correct place for RAMTOP in double display mode is 63255, 
the first byte below UDG. 

"CLEAR 63255" will reset RAMTOP and allow use of the UDG's. 

"CLEAR 63423" will set it above the UDG area and give you 168 
more bytes to use. 


I found the same thing in my version 1.7 cartridge. Also, 
the default interface settings are different to the later 
cartridges (see the following documentation "LINE CHANGES AND 
ADDITIONS", lines 9994 and 9997. 


SEEK AAT TATA EKA TAKA TERA TAAL LAAT ETEK ETRE TELAT EER ELK EEA ETE 


THE FEATURE ARTICLE 
or 
Why you didn't receive a newsletter last month 


Several months ago I mentioned that I had rewritten PROFILE 
so that it could be used with the 05-64 cartridge in the 2068. 
Well, I think that I have finally ironed out all of the bugs and 
here it is. 

The explanatory notes and the BASIC program are in this 
newsletter. The BASIC program is also in the DOWNLOAD section 
of the King's Market BBS. 

The MC portion of the program has not been included because it 
is a copyrighted program and you have to pay Tom Woods for it. 

I have included instructions on how to change it if you already 
have a legal copy. 

I have sent a copy of the entire program to Tom, so write to 
him if you don't have PRO/FILE and are interested in it. 


MREKSEAAARELK ALLELE KALLE ATER A AEE RKTT AEA A REE RESELL ETT EREE 
WARNING: 

My printer makes lower case "l"s and the number "1" look very 
Similar. Also the letter "o" and the number "O". 


Both are used in the BASIC listing and it is very easy to 
confuse them. BE CAREFUL. 


PRO/FILE 2068 + 05-68 
THESE NOTES ARE INTENDED AS ñ SUPPLEMENT TO THE PROFILE MANUAL. 


I have rewritten PRO/FILE 2068 to operate with the ZEBRA 
05-64 module to provide a 64 column by 15 line data-file and 
display. Portions of the BASIC program were changed and the 
machine code had to be moved (and changed) to accomodate the 
changes in the operating system. 

There are only about 500 bytes left unused in ram. 


FILE SIZE: 


I have used 22760 bytes for d$ (maximum file size) because 
this rewrite was also intended for use with the A&J Microdrive 
(which makes a smaller file size practical) and, at this size, 
I can get 4 complete files on a 62 foot wafer. 

I like to SAVE a standard size file so that changes will not 
cause a new SAVE to over-write part of the following file on a 
wafer. 


ADDITIONS: 


I have added the following routines from the PRO/FILE manual 
(pps 97-107); 

The keypress "tick" 

keypress non-auto-repeat 

lprint from edit (copy display) 

autosearch improvement 

auto-sort (by 32 chars) 

block purge. 


I have also added a routine to allow 2 files to be merged. 


CHANGES: 


The main menu has been completely rearranged and several new 
functions added. 

The data-entry/edit menu has been rearranged and all of the 
functions now appear on a single menu. Upper/lower case ana 
insert/over conditions now appear on the menu. The line and 
column positions of the cursor are also displayed on the menu 
along with the LPRINT format. 

"STOP" to exit the data-entry mode and "STEP" to exit the 
edit mode are displayed as a reminder. The program is supposed 
to differentiate between them so BUT BE CAREFUL. I have 
experiencec random problems using STOP from edit. 

Different key-click sounds are provided for data-entry and 
control functions. 


< :. i= 


LINE CHANGES AND ADDITIONS: 


Many of the new line numbers and routines will not match the 
original program but they are still obvious enough that you can 
sort them out. These are the major changes. 


Lines 20 - 118: main menu & select 

Lines 1050 - 2000: data review menu 

Lines 5004 - 5018: data enter/edit menu 

Lines 5500 - 5510: data "LOAD" 

Lines 5600 - 5630: data "SAVE" 

Lines 5650 — 5680: "MERGE" two files 

Lines 7200 - 7240: "LPRINT" 

Line 9800: "CHANGE FILENAME" 

Line 9994: CLEAR 62627 and LOAD mc. 

Line 9995: DIM (22760) and certain standard values are put into 
variables to save ram space. 

Line 9995: Housekeeping variables are initialized including the 

blank lines and  "zzz"s that are necessary for 

sorting and printing operations.  GOSUB 5620 is to 
insert the "*SEARCH IS COMPLETES" message in the 
first 20 bytes of d$ (this is also used by LOAD. 

Line 9997: POKE 24201,0 (ASJ drive O) 
POKE £5510,0 (turn off line feed, 05-64) 
POKE 65523,185 (select A&J interface, 05-64) 
POKE 65525,72 (LPRINT # of chars per line, 

plus # of chars in margin, 05-64 

RANDOMIZE USR 15623 (initialize # of chars, 05-64) 

Line 9998: initialize y$ & f$, start (GO TO 1) 

Line 9999: SAVE & VERIFY for backup 


You may need to make some changes in Line 9997 to match your 
0S-64 (they”r not all the same), your interface, and your 
printer. 


MACHINE CODE: 


The PRO FILE MC now starts at 62628 (down 861 bytes) because 
the operating system is moved around for the 64 column mode and 
portions of it now occupy the top of ram. 

You will need HOT-Z, Dr some other  assembler/disassembler 
that will allow you to relocate blocks of code. Otherwise you 
will have to go thru the MC and change all of the GOTOs & JPs by 
hand. 

It was only necessary to change 3 bytes to accomodate the 64 
column mode. Addresses are the NEW locations. 


F502 Ξ 40 (40 hex - 64 spaces) 
F463 = 40 (set count to 44) 
F4C4 = 41 (4 of columns + 1) 


=E. 2 15 


"SAVE" and "LOAD": 


Both SAVE and LOAD will automatically put the computer in 
CAPS mode (POKE 23658,8). 


ດ11 data SAVE/LOAD operations are set up for A&I drive ο 
because 1 always keep programs in drive 1 and files in drive O. 


The dimensioned data file (d$), as the first variable 
declared, is always located at (PEEK 236274256XPEEK 23628). The 
first 6 bytes are header information, therefore the actual data 
starts at byte 7. Line 5630 creates variable "loc" which is the 
beginning of the data. loc=6+ (PEEK 23627+256*PEEK 23628). 


"SAVE": Line 5600; will use the "FILENAME" (f$) that appears on 
the main menu. The routine will also ask for a file number. 

The message "SEARCH IS COMPLETE" will be removed from d$ and 
the value of variable "p" (total bytes used) will be inserted in 
the, now unused, 20 bytes of the header. 

The program will automatically VERIFY. 


"LOAD"; Line 5500; will ask "HAS CURRENT FILE BEEN SAVED?" (as 
a safety check to prevent losing a file). "N" will return you 
to the main menu, "Y" will ask for the filename to be loaded. 
Variable "p" is extracted from the new d$ and the message 
"SEARCH IS COMPLETEt" is replaced in the first 20 bytes. 


"LPRINT": 


The 08-64 operating system does not support the 2040 
printer. However, it does provide a centronics driver far a 
large printer (interface selectable). Therefore, the driver 
code used in the manual is not necessary. 


The total number of characters per line are set in Line 
9997. However, since some printers do not have a "left margin” 
control — Line 7220 contains the necessary number of blank 
spaces to creste a left margin. This means that line 9997 (POKE 
&£5525.72) is the number of characters to be printed PLUS the 
number of characters for the margin. 


If you want a blank space between each individual file 
printout, then change line 7225 to "NEXT x: LPRINT". 


EXAMPLE; I have indexed the club newsletter library. The 
first line is always the newsletter name and date with content 
notes on the other lines. I get rid of the LPRINT when I want 
a list of just the newsletter names & dates. I use the LPRINT 
when I want a printout of the entire file, with a space between 
each file. 


=E :5:.3- 


COMBINING FILES (MERGE): 


PRO/FILE allows deleting blocks of files so that large files 
may be split. I have added a routine that allows two files to 
be combined. As written, it requires 2 microdrives. 

EDIT THE TWO FILES TO THE SIZE AND DATA THAT YOU WANT. 
Remembered that the total number of bytes in the two files MUST 
PE LESS than the maximum file size (22760 bytes minus 20, or 
11375 bytes each). 

Place the wafer containing the regular files in drive O, 
place a formatted wafer (20-35 ft) in drive 1. 

When you select "MERGE", the program will prompt for the 
first filename. It will then LOAD that file (from drive 0), 
place the actual file size in variable "pi" (pi=p-20), place the 
filename in "h$", and then SAVE tand VERIFY) the file tat its 
actual file size minus the 20 byte header) to drive 1. See line 
5660, SAVE "21,"+ f$ CODE tloc+20),pi. 

The program will then prompt for the next filename (to be 
LOADed from drive 0). This will LOAD normally. 

The first file will then automatically be reLOADed (using 
the name in "h$), AND using the new value in variable "p" to 
determine where the file should go in d$ so that it is 
immediately behind the resident file. Line 5680, LOAD “"a"+h$ 
CODE (loc+p+1) 

The value in variable "pl" is then added to the value in 
variable "p" to give the size of the combined file. 

It is a simple matter to rewrite the program if you only 
have one microdrive. You will need to put pauses (and reminder 
messages) in to allow time to swap wafers. 


WARNING: It has been my experience that no two microdrives 
run at the same speed. Therefore, if you have saved several 
files using the slower drive and then over-write one of those 
files using the faster drive, it will also over-write the 
beginning of the following file. 


-E 4 l- 


“ooo! 


0003 


C 


+04 


0005 


0008 


0010 


onzo 


0040 


0051 


0055 


, DRAW 


REM XX FRO/64 XX MODIFIED OCT, 1987 BY FRANK 


LET a=to: 
LET x$z"" 


RANDOMIZE p: 


ΕΟΚΕ VAL "63174", FEEE VAL "23670": 
FOKE VAL "63175", FEEK VAL "23671": 
RANDOMIZE USR VAL "63407" 
LET y=to: 
DIM es(ti5, t64): 
CLS 
If FEEK VAL "62750" - tO 

AND y$ <> "D" 

AND y$ <> " STEP " 

THEN GO SUB VAL "7300" 

IF y$ = "D" 

OR yt = " STEP " 

THEN GO TO t119 

CLS: 
PRINT AT ti, tiS; "XXXXXX PRO/FILE 2068 + 08-64 
PRINT AT t3, t3; "FILE + "; #97 

"FREE : "3 LEN d$ — p; "bytes"? 


TAB t3; "ORDER : "3 5’ 
"FORMAT: "s: af 


PRINT AT VAL "7", 
TAB t10; 
TAB ti0; 
TAB t10; 
TAB tiO; 
TAB tiO; 
TAB tio; 
TAB t10; 
TAE tid; 


tio; "<*X> LIST ALL FILES"? 
"<Esnter NEW FILE" 

"<Seave FILES (drive 0)"* 

"<Locad FILES (drive O)"* 
"<M>erge FILES"? 

"<Asutosearch (% lprint)"* 
"Format LFRINT"* 
"¿Change FILENAME 
"XF2urge ALL FILES" 


(7 chars.)"” 


FRINT AT VAL "18", 
TAB t2; 
TAB t2; 


au 


EZI 


FLOT tO, tO: 
t255, tO: 

DRAW tO, VAL "175": 
DRAW -t255, tO: 
DRAW tO, VAL "-175" 


FOKE 
INFUT 


VAL "23658", t8: 
"SEARCH COMMAND? ": x$ 


IF x$ - "E" 


THEN GO TO VAL "5000" 


"SEARCH COMMAND`# (line 1-9) 
"SEARCH COMMAND\D to delete series of files."" 
"Separate multi-word command words with token 


HOLLAND 


XXxxxx" 


to sort files,."" 


na AND nu τ 


KI 


Q 


38 


15 


i6 


50 


IF 


IF 


IF 


IF 


IF 


IF 


IF 


It 


IF 


we. umm nou 

THEN GO SUB VAL "S600": 
GO TO ti 

x$ = npo 

THEN GO SUB VAL "5500": 
GO TO ti 

x$ = nan 


THEN GO το VAL "5200" 


x$ - "F" 

THEN GO SUB VAL "6500": 
GO το t20 

vé = "C" 


THEN GO TO VAL "9800" 


x$ = "p" 
THEN GO TO VAL "9650" 


ເ = "M" 

THEN GO SUB VAL "5650": 
GO TO ti 

κ = m" 

THEN 60 TO ti 

MS(LEN x$) = " AND " 


OR LEN x$ » t64 
THEN GO TO tio 


οἱ 5 


LET x$ = 
LET x$ = x$ 


xe 


RAMDOMIZE USR VAL "63179" 


LET j$ = CHR$ PEEK VAL "23670" 


IF a = το 


THEN IF CODE jẹ > VAL "48" 


AND CODE j$ < VAL "58" 
THEN LET s = VAL j$: 

LET a = tl: 

LET y = tO: 

LET y$ = " STEP ": 
GO SUB VAL "7300": 
LET p$ = b$: 

LET g$ = of 


LET b = USR VAL "63240" 


-E 6 1- 


1010 


104“ 


1056 


1060 


IF j$ = "D" 
THEN LET a sti: 


LET s =tò: 
LET y$ - "D': 
LET y Ξ το 


FRINT AT tO,tO:: 
DIM e$(ti5, t64): 
LET e$(ti) = "": 
IF USR VAL "62714" THEN 


IF e$(ti, TO t18) = d$(t2 TO t19) 
AND b <> p 
THEN CLS: 
GO TO VAL "150" 


IF a 
THEN GO TO VAL "7000" 


IF a. 
THEN GO SUB VAL "7300": 
GO SUB VAL "7310": 
GO SUE VAL "7300" 


IF e$ttl, TO 118) <> d$(t27 TO tim) 
AND CODE j$ > t32 
THEN GO TO VAL "8500" + CODE j$ 


GO SUB VAL "9830": 

PRINT AT ti7,tOs "<M>ain menu's 
TAB t25; "“Erdit file”; 
TAB t45; "<Forint file" 
"ZENTER> to continue”; 
TAB ໄລຍ; "xA>0d new file"; 
TAB t45; "<Foormat"” 
"ZR^estart same search"; 
TAB t25; "<Doelete file”; 
TAB t45; " "t at 

PRINT AT t20, tl; "Search is fort": 
TAB VAL "36": "or enter new SEARCH COMMAND"? ΝΕ 
FOKE VAL "23658", t8 


INFUT "OPTION? "3 y$ 


ΙΕ yé = onn 
AND b < p 
THEN CLS: 
GO TO VAL "150" 
ΤΕ y$ > "ma 


THEN GO TO ti 


IF USK VAL "63407" THEN 
(this line is supposed to be this way, it is not an 


< 7 


error? 


1080 


1090 


1400 


1500 


2000 


4000 


4010 


5000 


5002 


5003 


5004 


5005 


IF PEEK VAL "63165" + t256 κ PEEK VAL "63166" 
<> PEEK VAL "23627" + t256 X FEEK VAL "23628" + VAL "6" 
AND (y$ = "D" OR y$ = "E") 
THEN GO TO VAL "4000" 


IF ys = NR 
THEN CLS: 
LET x$ = x$ 
GO TO t119 + (a X VAL "5121") 


IF yé = "pr 
THEN GO TO VAL "7205" 


IF yé = "F" 
THEN GO SUB VAL "98:30": 
GO SUB VAL "6500": 
LET y$ = າກ: 
GO TO VAL "1050" 


IF a$ = "A" 
THEN LET x$ = "1i": 
GO TO VAL "5000" 


LET x$ = γῆ: 
GO TO VAL "115" 


GO TO VAL "1050" 


LET p = p - USK VAL "62779": 
IF y$ - "D" 
THEN LET y$ = CHR$ (CODE "D" X a): 
GO TO νρι "4" 


GO TO VAL "5002" 


CLS: 
DIM e$(ti15, t64) 


LET m = tO: 
LET z - VAL "23658": 
LET i = tO: 
LET c = το 


GO SUB VAL "9830" 


PRINT AT ti7,tO0; "ARROWS move cursor",bs" 
"SHIFT O = Delete character", 
"SHIFT 1 = Alternate Insert/Over" 


PRINT AT t19,tO; "SHIFT 2 = CAPS LOCK", 
"SHIFT 3 = LINE DELETE"? 
"GHIFT 4 Ξ LINE ERASE", 
"SHIFT SYMBOL SHIFT: Line insert"* 
¿STOF? to close file”: 

ΤΕ ys = "En 

OR ys = nan 

THEN PRINT AT VAL "21", TO; "<STEP> to return from ADD/EDIT" 


=E ຮ d 


D 


5008 


5009 


5010 


5015 


5616 


5017 


S020 


5025 


5030 


ETA 


FRINT AT ti6, t5; "UFFER CASE": 


IF PEEK z.= tO 


THEN FRINT AT ti6, t5; "lower case" 


FRINT AT tié, 50; "INSERT OFF": 


IF i = ti 


THEN PRINT AT ti6, VAL 50; 


PRINT INVERSE ti; AT 1, C; 
AT t17, t32; "L= 
TAB 35; 1 + 1; 
TAB 40; "C= " 
TAB 43; ແ+ໄ1 


ον ERR GO TO 5008 


IF INKEY$ = າາ 
THEN 60 TO 5010 


LET y$ = ΙΝΚΕΥΦ 


IF y$ = " STEP " 
OR y$ = " STOP " 
THEN ON ERR RESET: 
CLS: 


GO TO 6000 


IF yé = un 
THEN GO TO 5010 


BEEF . 001, SO 
PRINT AT 1, cs SCREENS (1, 


IF CODE y$ + tié 
AND CODE y$ > t3 


"INSERT ON ” 


SCREENS (1.6): 


Da 
5 


c)t 


THEN GO SUB 5100 + CODE y$: 


BEEF .005, 25: 
GO TO 5006 


IF 1 


THEN LET es(1+1) = e$(l+1 TO c) + " " + es(l+ti, 


FRINT AT 1, tO; es(1+t1) 


PRINT AT l.c: y%: 

LET e$(l+ti, c+ti) = y$: 
LET c = (c+ti) X (cx63): 
LET 1 = 1 + (c=t0): 

LET 1 = 1 X (1<t15) 


GQ TO 5008 


-E 9 J- 


INVERSE tO; 


c+ti TO 63): 


5104 


5106 


5107 


5108 


5109 


5110 


5114 


FOR x = 1 TO 13: 
LET e£$(x-ti) = estx+t2): 


PRINT AT x, tO; esíu+ti): 


NEXT x: 
LET e$(ti5) = 
PRINT est(ti5): 
RETURN 


LET es (1+t1),c+t1 TO) = ານ; 
PRINT AT 1.10; es(1+t1): 
RETURN 


FOKE z, (PEEK z=t0) X tB: 
FRINT AT l,c; es(l+t1,c+t1): 
RETURN 


LET i = NOT i: 
FAUSE tS: 
RETURN 


LET c = ແ-(ແ?ໄ0): 
RETURN 


LET c = c*(cxX VAL "63"): 
RETURN 


LET 1 = 1+(VAL "14): 
RETURN 


LET 1 = 1-(1>t0): 
RETURN 


LET e$(l+ti) = es(l+ti, TO c) 


PRINT AT 1, tO: es(1+t1): 
GO TO VAL "S108" 


LET c = tO: 

LET 1 = 1 + tit 

LET 1 = 1 - (1>VAL "14"): 
RETURN 


+ ຂແ(1+ໄ1, 


FOR x = tib TD 1 + t2 STEP -.1Σ 


LET eS(x) = etí(x-ti): 


PRINT AT x - ti, τος es(x): 


NEXT x: 

LET es(1+t1) = ກນ 

PRINT AT 1, tO; e$(l+ti): 
RETURN 


GO TO VAL "5004" 
RETURN 

GO SUB VAL "7300": 
LET a = ti: 


INPUT "PRINT OUT Y/N) "š y$: 
LET y = y$ = "Y" 


=Ë 


10 1- 


c+t2 TO t63) 


+ 


5500 


5111 


5600 


5610 


5620 


INPUT "SEARCH COMMAND? "5 x$: 
IF x$ = "" 
OR LEN x$ > VAL "63" 
THEN BEEF VAL ".5", tid: 
GO TO VAL "5210" 


LET z$ = O"; 
INPUT "LINE NUMBER (0-15) "; z$: 
IF Shia wa 
THEN BEEF VAL ".5", 110: 
GO TO VAL "5220" 


ON ERR GO TO VAL "5220": 
IF VAL z$ < το 
OR VAL 2% > t15 
THEN GO TO VAL "S220" 


ON ERR RESET: 
LET s = VAL z$: 
CLS 


IF s <> to 
THEN LET p$ 
LET q$ 


bé: 
g$ 


"nn 


GO TO til? 


CES: 
POKE VAL "23658", t8: 
INPUT "HAS CURRENT FILE BEEN SAVED? 
IF y$ <> "Y" 
THEN GO TO ti 


INPUT "FILE NAME? "3 f$: 
GO SUB VAL "5630": 

LOAD "9" + f$ CODE loc: 
LET p = VAL d$ (ti TO +20) 


GO TO VAL "5620" 


POKE VAL "23658", t8: 

CLS: 

INFUT "SAVE AT FILE #7 "; n$: 
GO SUE VAL "5630": 

LET d$(ti TO t20) = STR$ p 


SAVE "Q" + n$ + "," + f$ CODE loc, 
VERIFY "2" + £$ CODE 


VAL 


(Y/N) 


j". 
5 


LET d$ (ti TO t20) = "SEARCH IS COMPLETEX": 


RETURN 


LET loc = (PEEK VAL "23627" + t256 κ PEEK 


RETURN 


<; Td de 


VAL 


yee 


"21760": 


"23628") 


+ VAL 


"asa 


5650 


5660 


5680 


6000 


6010 


6020 


6030 


6500 


6515 


οι 5: 
PRINT 
GO SUE 
LET pi 
LET ht 


"MERGE: file #1": 
VAL "5510": 

ວ - ໄ20: 

f$ 


"on 


FOKE VAL "24201", tl: 
SAVE "a1," + f$ CODE 
VERIFY "a" + f$ CODE: 
FOKE VAL "24201", tO 


(loc + t20), pl: 


FRINT "MERGE: file #2": 
GO SUB VAL "S510" 


tls 
(loc + p + ti): 
to: 


FOKE VAL 
LOAD "3" + h$ CODE 
FOKE VAL "24201", 
LET p =p + pl: 
RETURN 


"24201", 


LET d$(p) = CHR$ (42 — a X 42): 


FOR + = ti TO tiS 
LET e$(x) = es(x) 
IF USK 62628 THEN 
NEXT x 


LET p = USR 62669 


GO TO VAL "4" — (y$ = " STOP າ) + (a X (y$ 


FRINT AT t18, 
TAB t2; 
TAB t2i 


ts 


"Type ALL or line numbers 


"ENTER DESIRED FORMAT: "5 


LET cs ="": 
LET n= τος 
INFUT "FORMAT 
LET af = af + "/": 
IF aS (ti) = "/" 
THEN GO TO VAL 


af: 


"6510" 


IF a$ = 


THEN 


ALLI. 
FOR x = ti TO tis 
LET c$ = CHR$ x: 


OR a$(x) > rou 


THEN GO TO VAL "6510" 


=E- 12 Je 


(1— 
"Use ""O"" to print blank lines"; 


bs? 
9) 


STEP ")) 


separated by 
b$ 


11" 


U 


xo 


7010 


7080 


7090 


IF x < LEN a$ 


THEN ΙΕ a(x TO x+t1) 
THEN GO TO VAL 


IF a$(x) = "/" 


nyyn 
"6510 


THEN LET n = VAL aid TO x-t1): 


LET d = x + ti: 
IF n < t16 
THEN LET c$ 


IF n 2 tis 


THEN GO TO VAL "6510" 


NEXT x 
RETURN 


IF 5 = to 
THEN GO TO VAL "7202" 


IFb=p 
THEN GO TO VAL "7070" 


LET sf = e$(s, TO t32) 


IF s$ = pò£ 
THEN GO το VAL "7200" 


IF s$ > p$ 
THEN IF sẹ < qs 
THEN LET q$ = s$ 
GO TO VAL "7230" 


IF p$ = g$ 
THEN GO TO VAL "1047" 


LET pS = qs: 
LET q$# = g$: 
CLS 


LET x$ = x$: 
GO TO t119 


FOKE FEEK VAL "63165" + t256 X PEEK 


IF y= to 
THEN GO TO VAL "1047" 


c+ + CHR$ 


=E :15 d= 


VAL 


FOR x = ti TO LEN c$ 


IF CODE c#(x) = to 
THEN LFRINT 


IF CODE c$(x) 
AND ef$f(x) > b$ + b$ 
THEN LFRINT " "j" + "es (CONEc#(x)) 


NEXT x 
IF a 
AND b < p 
AND y$ <> "C" 
THEN CLS: 
GO TO VAL "159" 
GO TO VAL "1047" 


LET v = PEEK VAL "62750": 


FOKE VAL "62750", VAL "215" — v: 
ΕΟΚΕ VAL "62736", VAL "215" — v: 
RETURN i 


PRINT AT tO, tO:: 
LET e$(ti) = ກນະ 
IF USR VAL "62714" THEN 
(this line is supposed to be this way, it is not an 


RETURN 
GO TO ti 


LET p = p — USR VaL "52779": 
GO TO VAL "46060" 


GO TO ti 
GO TO VAL "1060" 


INPUT "ARE YOU SURE? (Y/N) "+ 46 
IF κ = "y" 
OR x$ = "Y" 
THEN GO TO VAL "9995" 


GO TO t1 


INFUT "NEW FILENAME? "i f$: 
GO TO ti 


PLOT tO, VAL "54": 
DRAW t255, tO: 
PLOT tO, VAL "52": 
DRAW t255, tO: 
FRINT AT tió, VAL "22"; "XX OPTION MENU ki": 
RETURN 


=[ “14.3- 


error?) 


9994 CLEAR VAL "62627": 
LOAD "3pro/64" CODE VAL "62628" 


ຈ Dim d$(VAL 722760"): 


LET to = VAL "o" 

LET ti = VAL "1": 

LET t2 = VAL "2%: 

LET t3 - VAL "3": 

LET tS = VAL "5": 

LET t8 = VAL "8": 

LET tio = VAL "10": 
LET ti5 = VAL "15"; 
LET tió = VAL "16": 
LET ti7 = VAL "17": 
LET ti9 = VAL "19": 
LET t20 = VAL "20": 
LET t25 = VAL "25": 
LET ໄວສ = VAL "32": 
LET t45 = VAL "45": 
LET t64 = VAL "64": 
LET tiiv = VAL "119": 
LET t255 = VAL "255": 
LET t256 = VAL "256" 


9996 LET p = t20: 
GO SUE VAL "5620": 
LET af = "ALL": 
LET ef = ານກ: 
ak, FOR x =ti TO t15: 
LET c$ = c$ + CHR$ x: 


NEXT x: 

LET s =t0: 

LET bs = " e 
LET gf = "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzrz' 


9997 FOKE VAL "24201", to: 
FOKE VAL "65510", to: 
FOKE VAL "65523", VAL "185": 
FOKE VAL "65525", VAL "72": 
RANDOMIZE USR VAL "15623": 
INK tO: 
CLS 


9998 LET y$ = "C": 
LET f$ = "FILENAME": 
GO TO ti 


9999 CLEAR: 
SAVE "3l1.FRO0/64" LINE VAL "9994"; 
SAVE "92.pro/64" CODE VAL "42628, VAL "795": 
VERIFY "QPRO/64": 
VERIFY "àpro/64" CODE 


sk dS" 3=